﻿module Supernova {

    export class Effect {

        public category: EffectCategory = EffectCategory.researchPassive;

        public name: string = 'Effect';

        public helpText: Array<string> = [];

        public activate: () => { allowFurtherActivations: boolean } = undefined;

        public calculateShipCost: () => { priceReduction: number } = undefined;

        public facilityConstructed: (body: Body, facility: string) => void = undefined;

        public shipActionPerformed: (ship: Ship, action: ShipAction) => void = undefined;

        public shipLanded: (ship: Ship) => void = undefined;

        public shipDestroyed: (attacker: Ship, victim: Ship) => void = undefined;

        public unlockAdditionalEffects: () => Array<Effect> = undefined;

        public getFurtherHelpText: () => Array<string> = undefined;

    }

} 